
#ifndef UTILS_HPP_
#define UTILS_HPP_

#include "cv.h"
#include <stdio.h>
#include <iostream>
#include <math.h>
#include "Triangle.hpp"
#include "Circle.hpp"
#include "Rectangle.hpp"
#include <vector>

using namespace std;

class Utils {

public:
	Utils();
	virtual ~Utils();

	static void drawRect( IplImage* img, int x1, int y1, int x2, int y2);
	static Triangle* drawAndCreateTriangle( IplImage* img, int midX1, int midY1, int x2, int y2, int x3, int y3);
	static Circle* drawAndCreateCircle( IplImage* img, int midX, int midY, int periX, int periY);
	static IplImage* fft(IplImage* im ,int chosenFilterType, int chosenFilter, Shape* actualChosenShape);

private:
	static void cvShiftDFT(CvArr* src_arr, CvArr * dst_arr);
	static void createSharpFilter( CvMat* dftFilter, string filterKind,Shape* chosenShape);
	static void createSmoothFilter(/*IplImage* img*/CvMat* dftFilter, string filterKind,Shape* chosenShape);
};

#endif /* UTILS_HPP_ */
